Date: Wed, 20 Nov 1996 22:11:34 GMT
Server: NCSA/1.4.2
Content-type: text/html
Last-modified: Tue, 03 Sep 1996 13:09:44 GMT
Content-length: 1449

<HTML>
<HEAD><TITLE>Algorithms and Data Structures</TITLE></HEAD>
<BODY>
<H2>Algorithms and Data Structures</H2>
<H4>(Computer Science 105)</H4>

<B>Times:</B> 96F: Arrange <BR>
<B>Instructors:</B> <!WA0><A HREF = "http://www.cs.dartmouth.edu/~scot/">Drysdale</A> <BR>
<B>Prerequisite:</B> <!WA1><A HREF="http://www.cs.dartmouth.edu/courseguide/undergrad/cs_45.html">Computer Science 45</A> 
	and <!WA2><A HREF="http://www.cs.dartmouth.edu/courseguide/undergrad/cs_49.html">49</A>. 
	Students are expected to be familiar with basic concepts from
	graph theory, discrete mathematics, linear algebra, and probability.
<P>



The main topics of the course are paradigms for designing algorithms (e.g., divide and conquer, greedy
method, structured search, balancing, dynamic programming, scaling, problem reductions), and the criteria
for their analysis (e.g., worst-case, average case, lower bounds, sensitivity, amortization, resource
tradeoffs, NP-completeness). The course deals primarily with the classical sequential algorithms, but also
introduces parallel, distributed, random, probabilistic, and approximation algorithms as time permits. 
The techniques are illustrated with algorithms for several domains, drawn from among information
retrieval, graphs, networks, matroids, string matching, cryptology, arithmetic, matrices, and algebra.
Many examples of important data structure and algorithms are described. 



<P>
<H4><HR>
<!WA3><IMG ALIGN="middle" SRC="http://www.cs.dartmouth.edu/images/Dtree.gif" WIDTH=34 HEIGHT=39> 
<!WA4><A HREF="http://www.cs.dartmouth.edu/courseguide/grad//">Back to Dartmouth CS Home Page</A>
</H4>
</BODY>
</HTML>
